/**
 * 静态字典统一导出
 *
 * 使用说明：
 * 1. 在这里注册所有前端静态字典
 * 2. key 为字典类型标识（使用小驼峰命名，如 grade、athleteStatus）
 * 3. value 为字典数据数组
 * 4. 通过 useDict(['grade', 'athleteStatus']) 统一访问
 */

import type { IGetDictsRes } from '@/api/system/dict/type'
import { GRADE_OPTIONS, GENDER_OPTIONS } from './common'
import { AUDIT_STATE_OPTIONS, VERIFY_STATUS_OPTIONS, REGISTER_STATUS_OPTIONS } from './athlete'

/**
 * 静态字典映射表
 * key: 字典类型标识
 * value: 字典数据数组
 */
export const STATIC_DICTS: Record<string, IGetDictsRes> = {
	// ========== 通用字典 ==========
	/** 年级选项 */
	grade: GRADE_OPTIONS as unknown as IGetDictsRes,
	/** 性别选项 */
	gender: GENDER_OPTIONS as unknown as IGetDictsRes,

	// ========== 运动员模块字典 ==========
	/** 审核状态 */
	auditState: AUDIT_STATE_OPTIONS as unknown as IGetDictsRes,
	/** 验证状态 */
	verifyStatus: VERIFY_STATUS_OPTIONS as unknown as IGetDictsRes,
	/** 注册状态 */
	registerStatus: REGISTER_STATUS_OPTIONS as unknown as IGetDictsRes
}

/**
 * 检查是否为静态字典
 * @param dictType 字典类型
 * @returns 是否为静态字典
 */
export function isStaticDict(dictType: string): boolean {
	return dictType in STATIC_DICTS
}

/**
 * 获取静态字典数据
 * @param dictType 字典类型
 * @returns 字典数据数组，不存在返回 undefined
 */
export function getStaticDict(dictType: string): IGetDictsRes | undefined {
	return STATIC_DICTS[dictType]
}

// 导出所有字典常量，方便直接引用
export * from './common'
export * from './athlete'
export * from './dictKeys'
